package huawei.year2016;

import java.util.*;

/**
 * Created by Hyman on 2017/3/16.
 * <p>
 * 输入一个字符串，求出该字符串包含的字符集合
 * 输入描述: 每组数据输入一个字符串，字符串最大长度为100，且只包含字母，不可能为空串，区分大小写
 * 输出描述: 每组数据一行，按字符串原有的字符顺序，输出字符集合，即重复出现并靠后的字母不输出。
 * <p>
 * 输入例子: abcqweracb
 * 输出例子: abcqwer
 */
public class CharacterSetOfString {


    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            printCharCollection(line);
            //printCharCollection2(line);
        }
        scanner.close();
    }

    /**
     * 利用LinkedHashMap保存了插入顺序的特性
     *
     * @param str
     */
    private static void printCharCollection(String str) {
        LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
        int len = str.trim().length();

        for (int i = 0; i < len; i++) {
            char c = str.charAt(i);
            if (map.get(String.valueOf(c)) != null && map.get(String.valueOf(c)) > 0) {
                map.put(String.valueOf(c), map.get(String.valueOf(c) + 1));
            } else {
                map.put(String.valueOf(c), 1);
            }
        }

        for (Map.Entry entry : map.entrySet()) {
            System.out.print(entry.getKey());
        }
        System.out.println();
    }

    /**
     * 利用set不包含重复元素的特性
     * @param str
     */
    public static void printCharCollection2(String str) {
        char[] ch = str.toCharArray();
        StringBuffer sb = new StringBuffer();
        Set<Character> set = new HashSet<Character>();
        int length = str.length();
        for (int i = 0; i < length; i++) {
            if (set.add(ch[i])) {
                sb.append(ch[i]);
            }
        }
        System.out.println(sb.toString());
    }
}
